﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Data;

namespace TanPhu
{
    public partial class Result : System.Web.UI.Page
    {
        private string _queryString = string.Empty;
        private string _maQuan = string.Empty;
        #region Connection String
        // Kết nối tới CSDL
        private static string GetConnectionString()
        {
            return System.Configuration.ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
        }
        #endregion
        #region Tìm kiếm dịch vụ theo quận
        // Hàm tìm kiếm mã quận theo từ khóa
        public static string TimQuan(string tuKhoa)
        {
            var kq = "";
            var dataTable = new DataTable();
            var connectionString = new OleDbConnection(GetConnectionString());
            try
            {
                connectionString.Open();
                var statement = "SELECT MAQUANHUYEN FROM TUKHOAQUANHUYEN WHERE TUKHOAQUANHUYEN ='" +
                                tuKhoa + "'";
                var command = new OleDbCommand(statement, connectionString);
                var dataAdapter = new OleDbDataAdapter(command);
                dataAdapter.Fill(dataTable);
                if (dataTable.Rows.Count > 0)
                {
                    var dataRow = dataTable.Rows[0];
                    kq = dataRow["MAQUANHUYEN"].ToString();
                }
                return kq;
            }
            catch (OleDbException)
            {
                kq = "";
                return kq;
            }
            finally
            {
                connectionString.Close();
            }
        }
        // Hàm tìm kiếm dịch vụ theo mã quận và mã dịch vụ
        public void BindGridViewQuan(string maQuan)
        {
            var dataTable = new DataTable();

            var connectionString = new OleDbConnection(GetConnectionString());

            try
            {
                connectionString.Open();

                var statement =
                    "SELECT DV.TENDICHVU, TDD.TENDIADIEM, DL.SONHA, D.TENDUONG, P.TENPHUONG FROM DULIEU DL, DICHVU DV, TENDIADIEM TDD, DUONG D, PHUONG P WHERE DL.MADICHVU = DV.MADICHVU AND DL.MATENDIADIEM = TDD.MATENDIADIEM AND DL.MADUONG = D.MADUONG AND DL.MAPHUONG = P.MAPHUONG AND DL.MAQUANHUYEN = " +
                    maQuan;

                var command = new OleDbCommand(statement, connectionString);

                var dataAdapter = new OleDbDataAdapter(command);

                dataAdapter.Fill(dataTable);

                if (dataTable.Rows.Count > 0)
                {
                    dsketqua.DataSource = dataTable;
                    dsketqua.DataBind();
                }
            }
            catch (Exception ex)
            {
                var message = "Fetch Error:";

                message += ex.Message;

                throw new Exception(message);
            }
            finally
            {
                connectionString.Close();
            }
        }
        public void BindAdvanceSearch(string maQuan ,string maDuong, string maPhuong, string maDichVu)
        {
            var dataTable = new DataTable();

            var connectionString = new OleDbConnection(GetConnectionString());

            try
            {
                connectionString.Open();

                var statement =
                    "SELECT DV.TENDICHVU, TDD.TENDIADIEM, DL.SONHA, DL.KINHDO,DL.VIDO D.TENDUONG, P.TENPHUONG FROM DULIEU DL, DICHVU DV, TENDIADIEM TDD, DUONG D, PHUONG P WHERE DL.MADICHVU = DV.MADICHVU AND DL.MATENDIADIEM = TDD.MATENDIADIEM AND DL.MADUONG = D.MADUONG AND DL.MAPHUONG = P.MAPHUONG AND DL.MAQUANHUYEN = " +
                    maQuan;

                var command = new OleDbCommand(statement, connectionString);

                var dataAdapter = new OleDbDataAdapter(command);

                dataAdapter.Fill(dataTable);

                if (dataTable.Rows.Count > 0)
                {
                    dsketqua.DataSource = dataTable;
                    dsketqua.DataBind();
                }
            }
            catch (Exception ex)
            {
                var message = "Fetch Error:";

                message += ex.Message;

                throw new Exception(message);
            }
            finally
            {
                connectionString.Close();
            }
        }
        #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
            //////////////////
            //Code vẽ bản đồ//
            //////////////////
            //string viDo = "-15.800513";
            //string kinhDo = "-47.91378";
            //Image banDo = new Image();
            //banDo.ImageUrl = string.Format(@"http://maps.googleapis.com/maps/api/staticmap?center={0},{1}&zoom=11&size=200x200&sensor=false", viDo, kinhDo);
            //detail.Controls.Add(banDo);
            //////////////////
            //////////////////
            //////////////////
            if (!IsPostBack)
            {
                //Trường hợp tìm kiếm thông thường
                if (!string.IsNullOrEmpty(Request.QueryString["text"]))
                {
                    //lấy từ cần tìm kiếm
                    _queryString = Request.QueryString["text"];
                    this.txtSearch.Text = _queryString;
                    //Load các kết quả lên repeater control
                    _maQuan = TimQuan(_queryString);
                    if (!string.IsNullOrEmpty(_maQuan))
                    {
                        BindGridViewQuan(_maQuan);
                        if (this.dsketqua != null)
                        {
                            this.count.Visible = true;
                            this.notFound.Visible = false;
                            sumOf.Text = dsketqua.Items.Count.ToString();
                        }
                        else
                        {
                            this.notFound.Visible = true;
                            this.count.Visible = false;
                        }
                    }
                    else
                    {
                        this.notFound.Visible = true;
                        this.count.Visible = false;
                    }
                }
                else//Tìm kiếm nâng cao
                {
                    string key = string.Empty;
                    string maQuan = string.Empty;
                    string maPhuong = string.Empty;
                    string maDvu = string.Empty;
                    //Lấy điều kiện tìm kiếm trên query string
                     if (!string.IsNullOrEmpty(Request.QueryString["key"])) 
                        key = Request.QueryString["key"];
                     if (!string.IsNullOrEmpty(Request.QueryString["maQuan"]))
                         maQuan = Request.QueryString["maQuan"];
                     if (!string.IsNullOrEmpty(Request.QueryString["maPhuong"]))
                         maPhuong = Request.QueryString["maPhuong"];
                     if (!string.IsNullOrEmpty(Request.QueryString["maDvu"]))
                         maDvu = Request.QueryString["maDvu"];
                    txtSearch.Text =string.Format(@"{0} có mã DV ={1} tại mã phường: {2} trong quận có mã:{3} ",key,maDvu,maPhuong,maQuan);
                    //Load các kết quả từ điều kiện lên repeater control
                    //"SELECT DV.TENDICHVU, TDD.TENDIADIEM, DL.SONHA,DL.KINHDO,DL.VIDO, D.TENDUONG, P.TENPHUONG FROM DULIEU DL, DICHVU DV, TENDIADIEM TDD, DUONG D, PHUONG P WHERE DL.MADICHVU = DV.MADICHVU AND DL.MATENDIADIEM = TDD.MATENDIADIEM AND DL.MADUONG = D.MADUONG AND DL.MAPHUONG = P.MAPHUONG AND DL.MAQUANHUYEN = " +
                    //maQuan + "AND DL.MADICHVU = " + maDichVu ;
                }
            }
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            Response.Redirect("Result.aspx?text=" + this.txtSearch.Text);
        }
        protected void imBtnDetail_Click(object sender, EventArgs e)
        {
            //Hàm để hiện chi tiết kết quả vào trong Cell có tên là detail
            //mỗi kết quả là 1 item trong repeater control
        
            //Ví dụ:
            //Hiển thị bản đồ: 
            //lấy tọa độ từ item trên
            string viDo="-15.800513";
            string kinhDo="-47.91378";
            Image banDo = new Image();
            banDo.ImageUrl = string.Format(@"http://maps.googleapis.com/maps/api/staticmap?center={0},{1}&zoom=11&size=200x200&sensor=false", viDo, kinhDo);
            detail.Controls.Add(banDo);
        }
    }
}